package com.cn.wanxi.dao;

import com.cn.wanxi.entity.ExamEntity;
import com.cn.wanxi.entity.ExamPaperEntity;
import com.cn.wanxi.entity.GradeInfoEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 关于考试的接口
 */
@Repository
public interface IExam {

    /**
     * 通过学生id去获取所有的考试信息
     *
     * @return 考试信息集合
     */
    List<ExamPaperEntity> getAllExam(Integer student_Id); //获取学生所有考试信息

    /**
     * 通过试卷Id获取试卷内容
     *
     * @param Student_Id
     * @return
     */
    List<ExamEntity> getExamPaperById(Integer Student_Id);

    /**
     * 通过试卷的Id获取试卷的答案
     *
     * @param ExamPaperId
     * @return 返回带答案的集合
     */
    List<ExamEntity> getExamPaperAnswer(Integer ExamPaperId);

    /**
     * 插入学生的分数
     *
     * @param entity
     * @return
     */
    Integer AddStudentMark(GradeInfoEntity entity);

    /**
     * 试卷添加考试信息功能：
     * 查询所有的考试信息
     * <p>
     * 另一种获取方法@Param("studentGrade") Integer studentGrade, @Param("subject")
     *
     * @param subject 试卷科目
     * @return 所有试卷集合
     */
    List<ExamPaperEntity> getPaper(String subject);

    /**
     * 完善试卷信息
     * 给试卷添加时间和考试时长
     *
     * @param examPaperEntity
     * @return
     */
    Integer CompleteExamInformation(ExamPaperEntity examPaperEntity);

    /**
     * 试卷添加考试信息功能:
     * 完善考试信息
     * 通过学生年级分发给学生
     *
     * @param examId       试卷id
     * @param studentGrade 学生年级
     * @return 完善结果
     */
    Integer DistributeExam(Integer examId, Integer studentGrade);

    /**
     * 试卷添加考试信息功能:
     * 完善考试信息
     * 给一位学生插入考试信息  待实现！！！
     *
     * @param ExamId
     * @param studentId
     * @return
     */
    Integer CompleteExamInformationByOne(Integer ExamId, Integer studentId);
}
